ZF.add('dom-create', function(Z) {

    var D = Z.Dom,
        doc = document,
        isIE = Z.Browser.ie,
        IFRAME = 'iframe',
        TEXT = doc.textContent !== undefined ? 'textContent' : 'innerText',
        HTML = 'innerHTML';

    Z.extend(D, {

        create : function(tag, node, attr) {
            var el = (node || doc).createElement( attr && attr.name && isIE && tag === IFRAME ? '<' + IFRAME + ' name="' + attr.name + '"></' + IFRAME + '>' : tag);
            if (attr) {
                this.attr(el, attr);
            }
            return el;
        },
        
        remove : function(el, context) {
            if (D.isElement(el) && el.parentNode) {
                el.parentNode.removeChild(el);
            }
        },
        
        html : function(el, html) {
            if (el) {
                var ele = D.get(el);
                if (ele && D.isElement(ele)) {
                    var args = arguments.length;
                    if (args > 1) {
                        ele[HTML] = html;
                    } else {
                        return ele[HTML];
                    }
                }
            }
            return this;
        },
        
        text : function(el, text) {
            if (el) {
                var ele = D.get(el);
                if (ele) {
                    var args = arguments.length,
                        attr = D.isElement(ele) ? TEXT : (D.isTextNode(ele) ? 'nodeValue' : null);
                    if (attr) {
                        if (args > 1) {
                            ele[attr] = text;
                        } else {
                            return ele[attr] || '';
                        }
                    }
                }
            }
            return this;
        }

    });

}, { requires : ['dom-query'] });
